package paq_negocio;

import com.sun.rowset.CachedRowSetImpl;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.Stateless;
import paq_clase_interfaz.interfaz_solicitud;
import paq_entidades.enti_solicitud;
import paq_entidades.enti_variables;
import paq_sentencias.Ejecutarsql;

@Stateless
public class neg_solicitud implements interfaz_solicitud {

    enti_solicitud entidad = new enti_solicitud();
    Ejecutarsql ejec = new Ejecutarsql();
    enti_variables v = new enti_variables();

    @Override
    public void insertar(String al_cedula, String soli_redaccion, String soli_asunto, String soli_fecha, String estado) {
        entidad.setSoli_estado(estado);
        entidad.setAl_cedula(al_cedula);
        entidad.setSoli_redaccion(soli_redaccion);
        entidad.setSoli_asunto(soli_asunto);
        entidad.setSoli_fecha(soli_fecha);
        String sql = "insert into Soli_alumno (soli_codigo,al_cedula,soli_redaccion,soli_asunto,soli_fecha,soli_estado,soli_contestado) values(concat('s',soli.NextVal),'" + entidad.getAl_cedula() + "','" + entidad.getSoli_redaccion() + "','" + entidad.getSoli_asunto() + "',to_date('" + entidad.getSoli_fecha() + "','yyyy-MM-dd HH24:mi:ss'),'En Proceso...','Pendiente')";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public void actualizar(String soli_codigo, String estado, String fechaRespuesta,String respondido) {
        entidad.setSoli_estado(estado);
        entidad.setSoli_codigo(soli_codigo);
        entidad.setSoli_fecha_respuesta(fechaRespuesta);
        entidad.setSoli_redaccion(respondido);
        String sql = "update soli_alumno set soli_contestado='"+entidad.getSoli_redaccion()+"',soli_estado='" + entidad.getSoli_estado() + "',soli_fecha_respuesta=to_date('" + entidad.getSoli_fecha_respuesta() + "','yyyy-MM-dd HH24:mi:ss') where soli_codigo='" + entidad.getSoli_codigo() + "'";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public void eliminar(String soli_codigo) {
        entidad.setSoli_codigo(soli_codigo);
        String sql = "insert into sms_eliminado_alumno(smsalu_codigo, soli_codigo) values(concat('sa',smsa.NextVal),'" + entidad.getSoli_codigo() + "')";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public CachedRowSetImpl getLista(String cedula) {
        try {
            v.crs = (CachedRowSetImpl) ejec.rellena2("select * from soli_alumno where al_cedula='" + cedula + "' and soli_alumno.soli_codigo not in (select soli_codigo from sms_eliminado_alumno) order by soli_fecha desc");
        } catch (Exception ex) {
            Logger.getLogger(neg_solicitud.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs;
    }

    @Override
    public CachedRowSetImpl getlistaCoboInformacion() {
        try {
            v.crs = (CachedRowSetImpl) ejec.rellena2("select * from soli_alumno");
        } catch (Exception ex) {
            Logger.getLogger(neg_solicitud.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs;
    }

    @Override
    public String getmensajei() {
        String sdr = "";
        sdr = v.msm;
        return sdr;
    }

    @Override
    public CachedRowSetImpl getCorreo(String cedula) {
        try {
            v.crs2 = (CachedRowSetImpl) ejec.rellena2("select solic.soli_contestado,(al.AL_APELLIDOS ||' '|| al.AL_NOMBRES) as al_nombres,(promo.pro_nombre||' '||pa.pl_nombre) as pro_nombre,solic.SOLI_CODIGO ,solic.AL_CEDULA,solic.SOLI_ASUNTO,solic.SOLI_REDACCION, solic.SOLI_FECHA,solic.SOLI_ESTADO,solic.SOLI_FECHA_RESPUESTA from paralelo pa,ALUMNO al, SOLI_ALUMNO solic, PROMOCION promo, PROGRAMA_POSTGRADO prog,COORDINADOR_PROGRAMA cordp, PROFESOR profe where solic.soli_codigo not in (select soli_codigo from sms_eliminado_profesor) and pa.PL_CODIGO=promo.PL_CODIGO and solic.AL_CEDULA=al.AL_CEDULA and promo.PROM_CODIGO=al.PROM_CODIGO and promo.PP_CODIGO=prog.PP_CODIGO and prog.PR_CEDULA=cordp.PR_CEDULA and cordp.PR_CEDULA=profe.PR_CEDULA and cordp.PR_CEDULA='" + cedula + "' order by soli_contestado desc,soli_fecha asc");
        } catch (Exception ex) {
            Logger.getLogger(neg_solicitud.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs2;
    }

    @Override
    public void eliminar_correo_coordinador(String soli_codigo) {
       entidad.setSoli_codigo(soli_codigo);
        String sql = "insert into sms_eliminado_profesor(smspr_codigo, soli_codigo) values(concat('sa',smsp.NextVal),'" + entidad.getSoli_codigo() + "')";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }
}
